-- Pierwotny właściciel i twórca kodu: AmaMa
-- Zakaz używania / edycji kodu bez wcześniejszej zgody ze strony właściciela
-- Zakaz wykorzystywania całego lub fragmentów kodu
-- W przypadku złamania powyzszych zasad sprawa zostanie skierowana do sądu pod zarzutem: Naruszenia majątkowych praw autorskich
-- Pierwotnie pełne prawo do używania tego kodu posiada tylko AmaMa

mojeW,mojeH = 1360,768
sW,sH = guiGetScreenSize()
sx, sy = (sW/mojeW), (sH/mojeH)
local panelinterakcjipojazdu = false
opcjaWybrana = 1

function stworzListe()
opcje = {}

local veh = getPedOccupiedVehicle(localPlayer)
	if veh then
			if not getVehicleEngineState(veh) then
			table.insert(opcje, {"Odpal silnik", 1})
			else
			table.insert(opcje, {"Zgaś silnik", 2})
			end
			if getVehicleOverrideLights(veh) ~= 2 then
			table.insert(opcje, {"Uruchom lampy", 3})
			else
			table.insert(opcje, {"Zgaś lampy", 4})
			end
			if isVehicleLocked(veh) then
			table.insert(opcje, {"Otwórz zamek", 5})
			else
			table.insert(opcje, {"Zamknij zamek", 6})
			end
			if isElementFrozen(veh) then
			table.insert(opcje, {"Spuść ręczny", 7})
			else
			table.insert(opcje, {"Zaciągnij ręczny", 8})
			end
			if getVehicleDoorOpenRatio(veh,0) == 0 then
            table.insert(opcje, {"Otwórz maskę", 9})
			else
			table.insert(opcje, {"Zamknij maskę", 10})
			end
            if getVehicleDoorOpenRatio(veh,1) == 0 then
            table.insert(opcje, {"Otwórz bagażnik", 11})
			else
			table.insert(opcje, {"Zamknij bagażnik", 12})
			end
			table.insert(opcje, {"Wysadź pasażerów", 13})
		end		
if #opcje > 0 then
		if not panelinterakcjipojazdu then
		bindKey("mouse_wheel_up", "down", onSuwakZmien)
		bindKey("mouse_wheel_down", "down", onSuwakZmien)
		bindKey("arrow_u", "down", onSuwakZmien)
		bindKey("arrow_d", "down", onSuwakZmien)
		bindKey("space", "down", onSuwakWybierz)
		SxS = getTickCount()
		addEventHandler("onClientRender", getRootElement(), gui)
		panelinterakcjipojazdu = true
	end
end
end

function wlaczPanelInterakcji()
local veh = getPedOccupiedVehicle(localPlayer)
	if veh then
    local id = getElementModel (veh )
	if id == 481 then return end
		if getVehicleController(veh) == localPlayer then	   
		opcjaWybrana = 1
		stworzListe()
		end
	else
	local veh = ostatniPojazd()
		if veh then
		opcjaWybrana = 1
		stworzListe()
		end
	end
end

function wylaczPanelInterakcji()
	if panelinterakcjipojazdu then
	panelinterakcjipojazdu = false		
	unbindKey("mouse_wheel_up", "down", onSuwakZmien)
	unbindKey("mouse_wheel_down", "down", onSuwakZmien)
	unbindKey("arrow_u", "down", onSuwakZmien)
	unbindKey("arrow_d", "down", onSuwakZmien)
	unbindKey("space", "down", onSuwakWybierz)
	removeEventHandler("onClientRender", getRootElement(), gui)
	saveV = nil
	end
end


bindKey("lshift", "down", wlaczPanelInterakcji)
bindKey("lshift", "up", wylaczPanelInterakcji)

function gui()    
for i,v in pairs(opcje) do
	pos = sx + ((i-1)*38)
		if i == opcjaWybrana then
                local Rx, Rf = interpolateBetween(0*sx, 0*sx, 0*sx, 200*sx, 0*sx, 0*sx, (getTickCount()-SxS)/300, "InQuad") 
                local Rx2, Rf2 = interpolateBetween(-500*sx, 0*sx, 0*sx, 200*sx, 0*sx, 0*sx, (getTickCount()-SxS)/300, "InQuad") 
                exports["PSSM-gui"]:DxDrawBorderedRectangle(0*sx, 250*sy+pos, Rx, 35*sy, tocolor(0, 0, 0, 180), tocolor(100, 0, 255,255), 2, false) 
				exports["PSSM-gui"]:createCustomText2(v[1], 0*sx,335*sy+pos,Rx2,pos + 200*sy, tocolor(255, 255, 255, 255), 1, "font18", "center", "center", false, false, false, false, false)

	    end
	if #opcje == 1 then
	opcjaWybrana = 1
	end
end
stworzListe()
end

function ostatniPojazd()
local veh = getElementData(localPlayer, "lastVeh")
	if veh then
		if isElement(veh) then
		local driver = getElementData(veh, "vehicle:driver")
			if driver == localPlayer then
			local dx, dy, dz = getElementPosition(localPlayer)
			local vx, vy, vz = getElementPosition(veh)
				if 10 >= getDistanceBetweenPoints3D(dx, dy, dz, vx, vy, vz) then
				saveV = veh
				return veh
				end
			end
		end
	end
end

function onSuwakZmien(k,ks)
	if not isPedInVehicle(localPlayer) then return end
	if k  == "mouse_wheel_up" then --na dol
	opcjaWybrana = opcjaWybrana - 1
        SxS = getTickCount()
		if opcjaWybrana == 0 then
		opcjaWybrana = #opcje
		end
	else
        SxS = getTickCount()
	opcjaWybrana = opcjaWybrana + 1
		if opcjaWybrana == #opcje + 1 then
		opcjaWybrana = 1
		end
	end
end

function onSuwakZmien(k,ks)
	if not isPedInVehicle(localPlayer) then return end
	if k  == "arrow_u" then --na dol
        SxS = getTickCount()
	opcjaWybrana = opcjaWybrana - 1
		if opcjaWybrana == 0 then
		opcjaWybrana = #opcje
		end
	else
        SxS = getTickCount()
	opcjaWybrana = opcjaWybrana + 1
		if opcjaWybrana == #opcje + 1 then
		opcjaWybrana = 1
		end
	end
end

function onSuwakWybierz()
	if not isPedInVehicle(localPlayer) then return end
	if #opcje == 1 then
	triggerServerEvent("onInterakcjeWybierzAkcje", localPlayer, false, saveV)
	return
	end
	if opcjaWybrana then
	local id = opcje[opcjaWybrana][2]
		if id then
		triggerServerEvent("onInterakcjeWybierzAkcje", localPlayer, id, saveV)
		end
	end
end